This is a very complicated problem. However, there is an approach to this type of question which might be helpful. Let us put it in a more general context. Let $R$ be any unital ring (not necessarily commutative), including possibly $C(X)$ for compact $X$ or $C(\tilde X)$ ($\tilde X$ is the one-point compactification of $X$ if $X$ happens to be locally compact). Then $K_0(R),K_0(R)^+$ is a pre-ordered abelian group with positive pre-cone, $K_0(R)^+$, the image of the fg projective modules. If $R$ is stably finite (which trivially holds when $R$ is commutative), then $K_0(R)$ is partially ordered, and the question revolves around determining $K_0(R)^+$. One approach is via traces, specifically, nonzero group homomorphisms $\tau: K_0(R),K_0(R)^+ \to {\bf R},{\bf R}^+$. Obviously, if $q \in K_0(R)^+$, then $\tau(q)\geq 0$, yielding a necessary condition. In the case of compact $X$, each $x \in X$ yields such a trace---but if $X$ is connected, they all yield the same one, corresponding to the rank, and in that case $\tau(q) > 0$ if $q \in K_0(R)^+ \setminus \{0\}$. If $R$ satisfies a somewhat awkward condition (equivalent to *unperforation* for partially ordered abelian groups---other names are sometimes used), for finitely generated projectives $P,Q$, if there exists an onto module map $P^n \to Q^n$ for some integer $n$ entails that there exists an onto module map $P \to Q$ (this happens often enough that it applies to large classes of rings), then sufficient for $q \in K_0(R)^+$ is that $\tau(q) > 0$ for all (pure) traces $\tau$ (this characterizes the positive elements in the interior of the positive cone). But this isn't the end of the story, because there are going to be lots of elements on the boundary of the positive cone (and still in the positive cone), and sometimes these are much more interesting (and more difficult to characterize). In this case, we look at order ideals of $K_0(R)$, and try to find the traces thereon. Determining the pure traces is itself a generally difficult problem. But if $K_0(R)$ admits a multiplication making it into a partially ordered ring (that is, $K_0(R)^+ \cdot K_0(R)^+ \subseteq K_0(R)^+$---as happens if $R$ is commutative, and occasionally for nice noncommutative $R$---the pure traces are precisely the multiplicative traces, which therefore should be relatively easy to determine. Unfortunately, if $R = C(X)$ and $X$ is compact connected, this yields only one trace ... There is a somewhat limited literature on this sort of thing (for general $R$), mostly for AF C*-algebras, but the techniques apply much more generally.